import mysql.connector
from config.config_db import Config
from pymongo import MongoClient

# 配置数据库连接参数
db_config = {
    'user': f'{Config.MYSQL_USERNAME}',  # 替换为你的MySQL用户名
    'password': f'{Config.MYSQL_PASSWORD}',  # 替换为你的MySQL密码
    'host': f'{Config.MYSQL_HOST}'  # MySQL服务器的地址，如果是远程服务器，需要替换成相应的IP地址
}

# 建立连接
cnx = mysql.connector.connect(**db_config)
cursor = cnx.cursor()

# 创建数据库的SQL语句
create_db_sql = f"CREATE DATABASE IF NOT EXISTS {Config.MYSQL_DB}"  # 替换为你想要的数据库名

# 执行SQL语句
try:
    cursor.execute(create_db_sql)
    print("Database created successfully")
except mysql.connector.Error as err:
    print(f"Failed to create database: {err}")
finally:
    # 关闭游标和连接
    cursor.close()
    cnx.close()
    

# 创建MongoDB客户端，连接到默认的本地实例
client = MongoClient(Config.MONGO_URL)

# 指定数据库名称
database_name = Config.MONGO_DB

# 指定集合名称
collection_name = Config.MONGO_COL

# 检查数据库是否存在，如果不存在则创建
# 检查数据库是否存在，如果不存在则创建
db = client[database_name]
if db.name not in client.list_database_names():
    print(f"Database '{database_name}' does not exist. Creating...")
    # 创建数据库
    db['dummy_collection'].insert_one({'created': True})
    print(f"Database '{database_name}' created.")
else:
    print(f"Database '{database_name}' already exists.")


# 检查集合是否存在，如果不存在则创建
if collection_name not in db.list_collection_names():
    print(f"Collection '{collection_name}' does not exist. Creating...")
    # 使用insert_one方法插入一个文档，这将自动创建集合
    db.insert_one({'created': True})
    print(f"Collection '{collection_name}' created.")
    
else:
    print(f"Collection '{collection_name}' already exists.")
    
try:
    # 选择数据库
    db = client[Config.MONGO_DB]
    # 选择集合（即表）
    collection = db[Config.MONGO_COL]
    collection.create_index("文件名",unique=True)
except Exception as e:
        print(e)
# 关闭客户端连接
client.close()